package Soligee.controller.facade.sessionFacade;


import Soligee.model.vo.cadastros.ContaVO;
import Soligee.model.vo.cadastros.ParcelaNFEntradaVO;
import Soligee.model.vo.cadastros.ParcelaVendaVO;
import Soligee.model.vo.cadastros.ProdutoVO;
import Soligee.model.vo.lancamentos.BancoVO;
import Soligee.model.vo.lancamentos.ItensCompraVO;
import Soligee.model.vo.lancamentos.ItensNFEntradaVO;
import Soligee.model.vo.lancamentos.ItensOrcamentoVO;
import java.io.IOException;
import java.util.Date;
import java.util.List;

public interface SessionFacadeAlterar {

    public boolean alterarUsuario(int codUsuario,String login, int nivel, String senha,String nome)throws Exception;

    public boolean alterarPessoaFisica (

    //parametros Pessoa
    int casaPropria,int codPessoa,

    String nome,String telefoneUm, String telefoneDois, String telefoneTres,Date dataNasc,String rg,String email,String paginaWeb,

    String referencias,String cpf, String caminhoImagem, Date dataCadastro,

    String obs, String localTrab, double salario,int seprocado,String localNasc,

    //parametros de Endereço
    int codEndereco,int tipoEndereco,String rua, String bairro, String cep, String numero, String complemento,

    // parametros CidadeVO
    int codCidade
    )throws IOException, Exception;

    public boolean alterarPessoaJuridica(int codPessoa, String nome,String telefoneUm, String telefoneDois,
    String email,String paginaWeb,String caminhoImagem,Date dataCadastro,String razaoSocial,String cnpj,String inscEstadual,

    //parametros de Endereço
    int codEndereco,int tipoEndereco,String rua, String bairro,String cep, String numero, String complemento,
    // parametros CidadeVO
    int codCidade)throws Exception;

    public boolean alterarFornecedor(int codPessoa,String nome,String telefoneUm, String telefoneDois, String email,
    String paginaWeb, String caminhoImagem, Date dataCadastro,String razaoSocial,String cnpj, String inscEstadual,
    String ramoAtividade,

    //Parametros do Endereço
    int codEndereco,int tipoEndereco,String rua, String bairro, String cep, String numero, String complemento,

    // parametros CidadeVO
    int codCidade)throws Exception;

    public boolean alterarOrcamento(int codVendedor,int codOrcamento,int codCliente,Date dataOrcamento,

            Date validadeProposta,int quantidadeProduto,int planoPagamento,

            double valorTotalVista,double valorTotalPrazo,String observacoes,
            List<ItensOrcamentoVO> listaItens,List<ProdutoVO> listaProdutos)throws Exception;


    public boolean alterarProduto (int codSubcategoria,int codCategoria, int codMarca,int codProduto,String descricao,String unidade,double qtdadeEstoque,
            double quantidadeMinima,double precoCusto,double precoVenda, double percentualVenda
            )throws Exception ;

    public boolean alterarVendedor (int codVendedor, String nome,double comissaoVendaPrazo,double comissaoVendaVista)throws Exception;

    public boolean alterarNFEntrada (int codNFEntrada, Date data_emissao,
               Date data_entrada,int numero_nf,
               int qtdadeParcela, double percentualIPI,
               double percentual_frete,double percentual_desconto,
               double percentual_embalagem,double valortotal_produto,
               double valortotal_nota,
                int codFornecedor,
               //Listas auxiliares
               List<ItensNFEntradaVO> listaItens,List<ProdutoVO> listaProdutos)throws IOException, Exception;

    public boolean alterarCategoria (int codCategoria, int codMarca,String descricao, Double comissaoVenda) throws Exception;

    public boolean alterarSubcategoria (int codSubcategoria, int codCategoria, String descricao) throws Exception;

    public boolean alterarMarca (int codMarca, String descricao) throws Exception;

    public boolean alterarRepresentante (int codRepresentante, String nome, String telefoneUm, String telefoneDois,
            String email, String paginaWeb, String caminhoImagem, Date dataCadastro,

    //parametros de Endereço

    int codEndereco, String rua, String bairro, String cep, String numero, String complemento,

    //parametros de Cidade

    int codCidade

    ) throws Exception;
    
     public boolean alterarPedido(int codPedido, int codFornecedor,int codRepresentante, Date dataEmissao, Date dataRecebimento,
                int codFormaPgto, double percentFrete, double percentDesc, double percentEmbalagem, double valorTotalItens,
                double valorTotalPedido,List<ItensCompraVO> listaItens)throws Exception;

     public boolean alterarParcelaNF(ParcelaNFEntradaVO parcelaNF) throws Exception;
     public boolean alterarParcelaVenda(ParcelaVendaVO parcelaVenda) throws Exception;
     public boolean alterarConta(ContaVO conta) throws Exception;

     public boolean alterarCheque(int codCheque,String agencia,String numConta, String numCheque, int situaco, String emitente, String obsReferente, Date dataLancamento, Date dataDeposito, double valor,int codBanco) throws Exception;

    public boolean alterarBanco (int codBanco, String nome_banco, boolean ativo) throws Exception;
   
}